//2011-7-25
(function(){        //闭包
  function load_script(xyUrl, callback){
      var head = document.getElementsByTagName('head')[0];
      var script = document.createElement('script');
      script.type = 'text/javascript';
      script.src = xyUrl;
      //借鉴了jQuery的script跨域方法
      script.onload = script.onreadystatechange = function(){
          if((!this.readyState || this.readyState === "loaded" || this.readyState === "complete")){
              callback && callback();
              // Handle memory leak in IE
              script.onload = script.onreadystatechange = null;
              if ( head && script.parentNode ) {
                  head.removeChild( script );
              }
          }
      };
      // Use insertBefore instead of appendChild  to circumvent an IE6 bug.
      head.insertBefore( script, head.firstChild );
  }
  function translate(point,type,callback){
      var callbackName = 'cbk_' + Math.round(Math.random() * 10000);    //随机函数名
      var xyUrl = "http://api.map.baidu.com/ag/coord/convert?from="+ type + "&to=4&x=" + point.lng + "&y=" + point.lat + "&callback=BMap.Convertor." + callbackName;
      //动态创建script标签
      load_script(xyUrl);
      BMap.Convertor[callbackName] = function(xyResult){
          delete BMap.Convertor[callbackName];    //调用完需要删除改函数
          var point = new BMap.Point(xyResult.x, xyResult.y);
          callback && callback(point);
      }
  }
  
  window.BMap = window.BMap || {};
  BMap.Convertor = {};
  BMap.Convertor.translate = translate;
  })();